<?php 
namespace Common\Model;
use Hdphp\Model\Model;
/**
* user模型
*/
class Article extends Model{
	// 接收表
	protected $table='Article';
	// 自动验证
	protected $validate=array(           
		array('title','required','分类名不能为空',3,3),
		);


	// 自动完成
	protected $auto=array(
		// 上传时间
		array('sendtime','time','function',3,1),
		// 更新时间
		array('updatetime','time','function',3,2),
		// 用户id添加
		array('user_uid','uid','method',3,1),
		// 缩略图判断
		array('thumb','image','method',3,3),
		);
		// 用户id添加
	public function uid(){
		// 返回值
		return $_SESSION['id'];
	}
		// 上传图片处理
	public function image(){
		// 判断
		// 若没有执行新的上传修改条件 返回原图
		if(isset($_POST['thumb'])){
			return $_POST['thumb'];
		}
		// 创建上传文件夹
		$uploadDir='Upload/'.date('ymd');
		is_dir($uploadDir)||mkdir($uploadDir,0777,TRUE);
		// 调用上传方法  返回路径
		$uploadFile=Upload::type('jpg,jpeg,png,gif,bmp')->path($uploadDir)->size(2000000)->make();
		// 缩图
		if($uploadFile){
			// 拼接输出路径
			$dst=$uploadDir.'/thumb_'.$uploadFile[0]['basename'];
			// 进行缩略
			$thumbPath=Image::thumb($uploadFile[0]['path'],$dst,200,200,6);
			// 返回值
			return $thumbPath;
		}
		// 上传文件空  返回一个空字符
		return '';
	}



	// 添加方法
	public function store(){
		// 进行写入前验证
		if(!$this->create()) return FALSE;
		// 检查文章内容表
		$arcData=new ArcData;
		// 错误信息转存
		if(!$arcData->create()){
			$this->error=$arcData->getError();
			return FALSE;
		}
		// 判断上传文件
		if($_FILES['thumb']['error']!=4){
			// 获取错误
			if($error=Upload::getError()){
				$this->error=$error;
				return FALSE;
			}
		}
		// 写入article表
		$aid=$this->add();

		// 写中间表
		$arcTag=new ArcTag;
		// foreach写入数据库  tag表
		foreach (Q('post.tid') as $k => $v) {
			// 重组数组，写入数据库
			$newTid=array(
				'article_aid'=>$aid,
				'tag_tid'=>$v
				);
			// 添加进中间表
			$arcTag->add($newTid);
		}

		// 写内容表 添加aid
		$arcData->data['article_aid']=$aid;
		$arcData->add();
		return TRUE;
	}


	// 编辑方法
	public function edit(){
		// 与添加一样
		// 进行写入前验证
		if(!$this->create()) return FALSE;
		// 检查文章内容表
		$arcData=new ArcData;
		// 错误信息转存
		if(!$arcData->create()){
			$this->error=$arcData->getError();
			return FALSE;
		}
		// 判断上传文件  是否上传
		if(isset($_FILES['thumb']) && $_FILES['thumb']['error']!=4){
			// 获取错误
			if($error=Upload::getError()){
				$this->error=$error;
				return FALSE;
			}
		}
		// 写入article表
		$aid=$this->save();

		// 修改中间表 先删后加
		$arcTag=new ArcTag;
		$aid=$_POST['aid'];
		$arcTag->where('article_aid',$aid)->delete();
			// 遍历重组
		foreach(Q('post.tid') as $v){
				$data=array(
				'article_aid'=>$aid,
				'tag_tid'=>$v,
				);
			// 添加表
			$arcTag->add($data);
		}

		// 修改内容表
		$arcData->where('article_aid',$aid)->save();
		return true;
	}
}


 ?>